<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>问题2</title>
  </head>
  <body>
    <!-- 
        改变Promise实例的状态和指定回调函数谁先谁后？
            1、都有可能，正常情况下是先指定回调再改变状态，但也可以先改变状态再指定回调
            2、如果先改状态再指定回调？
                延迟一会再调用then()
            3、Promise实例什么时候才能得到数据？
                如果先指定的回调，那当状态发生改变时，回调函数就会调用，得到数据
                如果先改变的状态，那当指定回调时，回调函数就会调用，得到数据
     -->
    <script>
      // 先指定回调，再改变状态(最常见)
      //   #region
      //   const p = new Promise((resolve, reject) => {
      //     setTimeout(() => {
      //       resolve('a')
      //     }, 1000)
      //   })
      //   p.then(
      //     (value) => {
      //       console.log('成功', value)
      //     },
      //     (reason) => {
      //       console.log('失败', resason)
      //     }
      //   )
      //   #endregion

      //   先改状态,后指定回调
      //   #region
      //   const p = new Promise((resolve, reject) => {
      //     resolve('a')
      //   })
      //   setTimeout(() => {
      //     p.then(
      //       (value) => {
      //         console.log('成功', value)
      //       },
      //       (reason) => {
      //         console.log('失败', resason)
      //       }
      //     )
      //   }, 2000)
      //   #endregion
    </script>
  </body>
</html>
